package com.twobu.twobuinsight.service;


import com.twobu.twobuinsight.dto.*;

/**
 * AI研究服务接口
 */
public interface AIResearchService {

    /**
     * 提交研究任务
     * @param request 任务提交请求
     * @return 任务提交响应
     */
    TaskSubmitResponse submitTask(TaskSubmitRequest request);

    /**
     * 获取任务结果
     * @param taskId 任务ID
     * @return 任务结果响应
     */
    TaskOutcomeResponse getTaskOutcome(String taskId);

    /**
     * 获取任务结果
     * @param taskId 任务ID
     * @return 任务结果响应
     */
    TaskStatusListResponse getTaskStatus(String taskId);


    /**
     * 接收任务状态更新
     * @param taskOutcome 任务结果
     */
    void acceptTaskOutcome(TaskOutcomeResponse taskOutcome);

    /**
     * 生成任务PDF报告
     * @param taskId 任务ID
     * @return PDF生成响应
     */
    TaskPDFResponse generateTaskPDF(String taskId);

    /**
     * 生成任务网页报告
     * @param taskId 任务ID
     * @param regenerate 是否重新生成
     * @return 网页生成响应
     */
    TaskWebpageResponse generateTaskWebpage(String taskId, boolean regenerate);
}
